package py.com.alfa.escriba.web;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import py.com.alfa.escriba.exception.ServiceExceptionMapper;
import py.com.alfa.escriba.util.JacksonConfig;
import py.com.alfa.escriba.web.interceptor.InvocationContextInterceptor;
import py.com.alfa.escriba.web.rest.impl.AdminSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.ControlesSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.ControlesseguimientoSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.DatoscomplementariosSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.FormulariosSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.InmueblesSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.LoginSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.MonedasSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.NaturalezasSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.PaisSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.PersonasSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.ReferenciaSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.TemplatesSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.VariablesSecureRESTServiceImpl;
import py.com.alfa.escriba.web.rest.impl.VehiculosSecureRESTServiceImpl;


public class Escriba extends Application {
	
	private Logger log = LoggerFactory.getLogger(getClass());
	
	
	public Escriba() {
		log.info("creating instance of " + getClass().getName());
	}
	
	@Override
	public Set<Class<?>> getClasses() {
		HashSet<Class<?>> set = new HashSet<Class<?>>();
		set.add(ServiceExceptionMapper.class);
		set.add(InvocationContextInterceptor.class);
		set.add(JacksonConfig.class);
		set.add(LoginSecureRESTServiceImpl.class);
		set.add(AdminSecureRESTServiceImpl.class);
		set.add(ReferenciaSecureRESTServiceImpl.class);
		set.add(PersonasSecureRESTServiceImpl.class);
		set.add(PaisSecureRESTServiceImpl.class);
		set.add(VehiculosSecureRESTServiceImpl.class);
		set.add(TemplatesSecureRESTServiceImpl.class);
		set.add(DatoscomplementariosSecureRESTServiceImpl.class);
		set.add(MonedasSecureRESTServiceImpl.class);
		set.add(NaturalezasSecureRESTServiceImpl.class);
		set.add(ControlesSecureRESTServiceImpl.class);
		set.add(FormulariosSecureRESTServiceImpl.class);
		set.add(ControlesseguimientoSecureRESTServiceImpl.class);
		set.add(InmueblesSecureRESTServiceImpl.class);
		set.add(VariablesSecureRESTServiceImpl.class);
		return set;
	}
}
